摘要:目前正在持续更新中,潜行游戏中的敌人AI 潜行小游戏

一、敌人感知(Perception)
1. 视野锥
一个从敌人中心或者头部发射出的一个锥体,通过设置夹角和长度来控制敌人视野 大致当玩家在视野锥中暴露过久,敌人就会感知到这个空间内可能有玩家存在,以此切换自身 情形 难题
这样的设计会出现一些 难题, 由于视野锥其模型特点的 缘故,敌人能够捕捉前方远距离的目标,而身侧近距离的目标则无法捕捉这就导致玩家可以从侧面直接接近敌人身边,而敌人完全不会发现,这是反直觉的解决 技巧
然而,为了让敌人能够捕捉自身周围的目标而一味增加视野范围,可能导致敌人在远距离的索敌能力超出预期The Last of Us制作团队的解决 技巧是对椎体进行分层,将敌人视野分为中心视野和周边视野
从以上截图中我们可以发现一些关键点:视野锥的增大并非线性:中心视野的增大是先慢后快的,但周边视野则不被设计为锥形,而是呈现为块状凸起, 并且不会拥有和中心视野一样长的距离,总体呈现 下面内容形状:
不同视野承担不同 责任:玩家处于敌人视野中时,敌人的某个数值会逐渐积累,当积累满时,玩家就被发现了;而玩家处于周边视野时,这个值积累的会比在中心视野时更慢2. 视线射线遮蔽(Vision RayCasting)
从敌人眼睛位置射向玩家身体中心的一簇射线检测,来积累某个值,代表玩家是否被敌人发现射线簇
为了模拟视线的体积,美末的制作者会发射竖排的三条射线作为一簇。当且仅当所有射线都没有被遮蔽,这时才能判定敌人发现了玩家同时,视线射线不会仅向玩家身体上的单一位置发射,而是可能根据情况变化位置,甚至发射多条,美末制作人是这么处理的:- 当玩家进行蹲下等明显表现出躲藏等意图的行为时,射线仅向玩家胸膛处发射,使得敌人视线更可能被遮蔽
- 而当玩家站立四处走动时,玩家应该更容易被发现,此时射线会向玩家头顶发射,避免射线被一些低矮障碍物遮挡, 由于即便敌人只看到玩家上半身, 由于玩家此时并非想要躲藏,敌人也应该发现玩家
- 我自己的想法是,在玩家四处走动时,也应同时向玩家胸膛下发射射线检测,同理避免敌人只看到玩家下半身却无法发现玩家的 难题
值得一提的是,制作者他们也尝试过使用更复杂的视线检测,比如检测玩家身体的各个部位是否暴露,并根据暴露部位的总得分来判断玩家是否暴露,但最终这种方案被否决了。 缘故是如此复杂的判断机制 虽然可能会让游戏看起来更 诚恳,却让玩家难以判断自己的操作会 怎样影响敌人;而让一个敌人AI变得更有可信度,最重要的是让玩家能够 领会敌人 怎样 领会环境并做出当下行为的。 下面内容是原文:And we found over and over that the most important thing about our AI seem believable was king the player konw why they de the decisions they de视野残留
当视线射线锁定到玩家身上后,会快速积累某个值,数值积满后,就判定玩家被发现,这时敌人一般会持续注视玩家负责近身战的敌人会追击靠近玩家,而在这个 经过中,敌人并非一直掌握玩家的 诚恳位置,像开了透视那样当玩家躲藏起来,追击的敌人失去玩家视野后,他们不会继续实时掌握玩家位置来继续追逐玩家,也不会停下来装作从未发现玩家游戏会保存所有敌人失去玩家视野前的 最后一个位置,敌人会前往那个位置,并试图在那里重新寻找玩家的踪迹
他们将这个称之为实体,一个十字箭头,他会记录一些目标的信息 并且这个实体实际上在大多数 时刻里是一直跟随玩家的, 并且有不同的 情形:- 当敌人未发现玩家时,实体为白色,跟随玩家
- 当敌人发现玩家, 并且玩家可见时,实体为红色,跟随玩家
- 当玩家脱离敌人视线后,实体变回白色, 并且留在玩家 最后被看到的位置
3. 怎样配合
那么实际上,这些 物品是 怎样配合的呢?美末制作人并没有在讲座中给出详细的演示, 因此 下面内容是我的猜想:首先制作人展示了在敌人感知方面的一些参数:- Full Acq:Full Acquisition,表示玩家被敌人感知程度的值,当这个值积累满,代表敌人发现了玩家
- Quality:据开发者说,这个值代表了玩家是否处于视野锥中,以及处于视野锥的 何位置
首先 职业的是视野锥
它负责感知空间内是否有玩家存在,先前提到的两个参数都与这部分有关当玩家处于中心视野或者距离敌人近时,Quality值高,Full Acq值会以更快的速度积累当玩家处于周边视野或者距离敌人远时则相反, 并且距离远近的判定似乎并非线性变化,而是分段的 接着是视线射线当玩家在视野锥中暴露过久导致被发现后,敌人就会向玩家发出射线判定是否可见当敌人判定玩家可见,他们就会进行追击或攻击,我觉得射线应该同时锁定玩家的头顶和中心, 并且根据情况变化而等到敌人丢失玩家视野,也不需要立刻重新累积Full Acq值;而是正如先前所说的,敌人会定位到玩家 最后的位置来重新寻找玩家值得一提的是
我们能发现,Full Acq,Quality这些值都是与玩家进行绑定的,而非分别记录于单个敌人身上,相当于敌人共享了这些数据我想这样是为了多敌人的场景而做出的考虑,当玩家暴露在多个敌人视野中时,玩家会被发现的更快,而不是每个敌人都单独感知玩家同时玩家的行踪信息也是实体,只有当玩家脱离所有人视野后,实体才会停止跟随玩家,告诉敌人这就是所有人 最后看到玩家出没的地方二、敌人空间 觉悟
(制作中)